🌏 ในโลกของการเขียนโปรแกรมมันก็มีภาษามากมายเกิดขึ้นมา ซึ่งในแต่ละภาษาก็มีความสามารถที่แตกต่างกัน ขึ้นอยู่กับว่าเราจะประยุกต์ใช้กับงานแบบไหน และมีอีกหนึ่งภาษาที่มาแรงมากในหมู่ Data Science ซึ่งบางคนอาจจะยังไม่รู้จัก ซึ่งภาษาที่ว่าคือ...ภาษา R นั่นเอง !
.
และวันนี้แอดจะพาเพื่อน ๆ ทุกคนมาทำความรู้จักกับภาษา R มันคืออะไร ? แล้วใช้ทำอะไรได้บ้าง ? หาพร้อมแล้วไปดูกันเลย !! 🔥
.
🤔 ภาษา R คืออะไร ?
.
ภาษา R เป็นภาษาในการพัฒนาโปรแกรมแบบ Open-Source ใช้งานได้ทุกแพลตฟอร์ม ไม่ว่าจะเป็น Windows, Linux และ macOS เรียนรู้ได้ง่ายไม่แพ้ภาษาอื่น ๆ มีความหยืดหยุ่นสูง เหมาะสำหรับงานด้าน Machine Learning สถิติ และการวิเคราะห์ข้อมูล
.
เป็นอีกหนึ่งภาษาที่แพร่หลายในหมู่ Data Science มี Community และอัตราการเติบโตที่สูงขึ้นเรื่อย ๆ
.
📄 ทำไมถึงต้องใช้ภาษา R ?
.
นอกจากภาษา Python แล้ว ภาษา R ก็เป็นอีกหนึ่งภาษาที่ใช้พัฒนา Machine Learning สถิติ และการวิเคราะห์ข้อมูล สามารถสร้าง Objects, Functions, และ Packages ได้ง่าย ๆ แถมยังมี Learning Curve น้อยกว่า Python มี Syntax ที่เข้าใจง่าย ใช้เวลาแปบเดียวก็เขียนได้แล้ว !
.
ภาษา R ยังสามารถใช้งานร่วมกับภาษาอื่น ๆ ได้ เช่น Python, Java, และ C++ มีสูตรทางคณิตศาสตร์มาให้ ทำให้ประมวลผล และจัดการข้อมูลได้ง่าย แถมยังสามารถใช้งานร่วมกับเครื่องมือวิเคราะห์ข้อมูลได้อีกด้วย
.
แต่ภาษา R ก็ยังมีข้อจำกัดในเรื่องความปลอดภัย จึงไม่เหมาะไปใช้ทำเว็บแอปพลิเคชันนั่นเอง
.
✨ มาเริ่มต้น Hello World กันเลย !!
.
ภาษา R นั้นก็คล้าย ๆ กับภาษาอื่นที่ใช้กันอย่างแพร่หลาย ส่วน IDE ที่นิยมใช้กัน เช่น R Studio, Rattle, Tinn-R เป็นต้น บันทึกไฟล์ที่มีนามสกุล .r
.
cat("Hello World")
.
นอกจากนี้ ยังมีฟังก์ชันที่ช่วยในการคำนวณทางสถิติอีกมากมาย สามารถศึกษาเพิ่มเติมได้ในลิงค์ด้านล่างเลย !! 👇
💥 https://www.tutorialspoint.com/r/index.htm
🔧 ใช้ทำอะไรได้บ้าง ?
.
🔹 Data Science - มีฟังก์ชันมากมายที่เกี่ยวข้องกับงานด้านสถิติ แถมยังมีการเตรียมสภาพแวดล้อมให้เหมาะกับการคำนวณและการออกแบบทางสถิติ
.
🔹 Data Analyst - ช่วยในการนำเข้าและส่งออกข้อมูลในรูปแบบต่าง ๆ ช่วยในการคำนวณและวิเคราะห์ข้อมูลทางสถิติ
.
🔹 Data Visualization - มีฟังก์ชันที่ช่วยในการคำนวณ หากใช้ร่วมกับ IDE สามารถแสดงรูปแบบกราฟได้ตามต้องการ
.
🔹 Machine Learning - รองรับการประมวลผลโมเดลในงานด้าน Machine Learning เป็นอีกหนึ่งภาษาที่ใช้ในงานด้านนี้ไม่แพ้ Python เลยทีเดียว !
.
นอกจากนี้ก็มีบริษัทใหญ่ ๆ อย่างเช่น Google, Facebook, Bing, Twitter, และ Accenture ใช้ภาษา R ในการวิเคราะห์ข้อมูลและทำงานด้านสถิติเช่นกัน
.
เพื่อน ๆ ก็พอจะรู้จักเจ้าภาษา R กันคร่าว ๆ แล้วเนอะ !! ไว้โอกาสหน้าแอดจะหาโปรเจกต์ที่พัฒนาด้วยภาษา R มาแชร์ให้กับเพื่อน ๆ ได้ดูกัน รอติดตามเลย ~~
.
หากชอบ อย่าลืมกดไลก์ กดแชร์ เพื่อเป็นกำลังใจให้กับพวกเราด้วยน้าาาา ❤️
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
#R #programming #DataScience #machinelearning #dataanalytics #BorntoDev
「linux cat」的推薦目錄:
- 關於linux cat 在 BorntoDev Facebook 的最讚貼文
- 關於linux cat 在 BorntoDev Facebook 的最佳貼文
- 關於linux cat 在 Kewang 的資訊進化論 Facebook 的最讚貼文
- 關於linux cat 在 Linux cat 讀取檔案用法與範例 - ShengYu Talk 的評價
- 關於linux cat 在 Linux Command Line Basics Tutorials - cat Command in Linux 的評價
- 關於linux cat 在 sharkdp/bat: A cat(1) clone with wings. - GitHub 的評價
- 關於linux cat 在 Linux cat command is not working properly in python 的評價
- 關於linux cat 在 How to `touch` and `cat` file named `-` [duplicate] 的評價
linux cat 在 BorntoDev Facebook 的最佳貼文
🔥 ในวันนี้เราจะมาเรียนรู้กันเกี่ยวกับการสร้างไฟล์ Text บน Linux กันด้วยคำสั่ง cat กับ touch กันน!!
.
📑 ซึ่งเจ้า 2 คำสั่งนี้นั้นเป็นคำสั่งที่ผู้ใช้งาน Linux รู้จักกันอย่างดี ถือว่าเป็นคำสั่งพื้นฐานเลยหล่ะ (นอกจาก Text File ก็สร้างได้นะ) ซึ่งทั้ง 2 ตัวนั้นจะมีรูปแบบการทำงานอย่างไรนั้น ไปดูกันเลย !!
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
linux cat 在 Kewang 的資訊進化論 Facebook 的最讚貼文
TL;DR
如果發現 hbase shell 在 scan 或 count 的筆數與你預期筆數不一致的話,就 split region 看看吧。
--- 以下是前言,還真長 XD ---
最近都在忙著新版本上線,所以小編也好一陣子沒發文了。不過這幾天有個有趣的案例,想跟大家分享一下。
有在看小編文章的大概會知道我們產品的資料庫是以 HBase 建置而成的,而 HBase 最重要的組成就是 rowkey 了。若 rowkey 設計錯誤輕微可以使用 column 來救,嚴重的甚至要砍掉整筆 row,重新設計 rowkey 才能解決。
兩年前在設計某 table 的 rowkey 時,不小心忘了對 rowkey 做 salt (HBase 基礎之一,避免 scan 時產生 hotspotting),如果又沒切 region 的話 (HBase 基礎之一,避免 scan 時產生 hotspotting),這些資料在建立時都會跑到同一個 region,在 scan 的時候效能會超差。
像這種例子就算使用 column 來救也完全沒辦法,所以小編就打算把整筆 row 砍掉重新把 salt 加上去。
--- 以下是追蹤過程 ---
原 rowkey 開頭及加上 salt 之後的新 rowkey 開頭如下:
* 原:A000001、新:DNhA000001
* 原:A000002、新:dMfA000002
* 原:A000003、新:p9OA000003
* 以此類推
原 rowkey 相同 pattern (A000XXX) 的 row 有 2000 萬筆 (在 hbase shell 內使用 count 來計算 table 的資料量),所以這次 rebuild 總共會刪除原 rowkey 共 2000 萬筆,新增新 rowkey 共 2000 萬筆。
在使用 HBase 的 Java API 執行增刪 rebuild 後,在 hbase shell 使用 count 計算 table 的資料量時卻只有 900 萬筆。一開始小編還以為是 compaction 跟 flush 的問題,所以強制對 table 做了下面幾個動作,以確保資料有在 HFile 裡面正確地寫入及刪除:
* 確認資料都會刪除:compact、major_ compact
* 確認資料都會寫入:flush
但執行完後再跑一次 count 也是一樣只有 900 萬筆,所以就開始找問題點了。
後來又使用 HBase 的 exists API,確認有找到 2000 萬筆的資料。一開始小編以為是 MapReduce 的問題,因為 HBase 計算 row count 是使用 MapReduce 來執行的,但找了一堆資料都沒人說有類似問題。後來想說在 hbase shell 內使用 scan {COLUMNS => "cf:XX"} 將所有的資料都拿出來,發現也是只有 900 萬筆,所以初步排除是 MapReduce 的問題。
後來比對了新增的 rowkey 及目前 scan 出來的 rowkey,發現 scan 出來的 rowkey 只有到 GbVA000017 而已,後面的 H-Z、a-z 開頭的全部都沒出現。所以小編使用 hbase shell 的 get 指令,確認在 Java API 新增的 rowkey (A-Z、a-z 開頭的) 是否存在於 table 內,發現用 get 可以拿的到資料。討論後用 scan 加 start rowkey 試試,結果如下:
* STARTROW => "GbVA000017":只找到一筆
* STARTROW => "H":可以找到 H 之後的所有資料
看了這結果,真的覺得非常奇怪啊!!!
後來大神 Cowman Chiang 說要不要試著用 split 讓 HBase 重切 region 看看,等於是 rebuild region 的意思,因為 split 會使用字母順序切分成不同的 region,讓 row 重新分散。split 完之後再做一次 count 果然就找到 2000 萬筆資料了啊。
感恩 Cowman Chiang 讚嘆 Cowman Chiang!!!
--- 以下是結論 ---
目前看起來就是 region 發生異常,還不知道是什麼原因會造成這次事件的發生。但如果發現 scan 或 count 的筆數與你預期的內容不一致的話,就 split region 看看吧。
--- 本次追蹤使用工具 ---
* Linux: grep, cat, cut, sort, sed, comm, wc, less, head
* Java: exists, scan, get, put, BufferedReader
* hbase shell: snapshot, split, compact, major_compact, flush, restore_snapshot, scan, get, disable, enable, clone_snapshot, list_snapshots
--- 20180112 後記 ---
後來把 snapshot 還原之後,重新做了一次 rebuild 再做 count,結果還是一樣只有 900 萬筆,然後用 hbase hbck -repair 試著看看是否能把 region 修復 (有 4 個 inconsistencies),修復完後一樣是 900 萬筆。
也有同事說到會不會是資料塞太快的關係,造成 region 無法 split 完整才會發生這個問題。對於這個說法,小編也還在研究看看,有什麼進度會再分享給大家知道。
#hbase #hadoop #mapreduce #hotspotting
linux cat 在 Linux Command Line Basics Tutorials - cat Command in Linux 的推薦與評價

In this video I am going to show , How to use cat Command in Linux. Linux is a computer operating system free for development and ... ... <看更多>
linux cat 在 sharkdp/bat: A cat(1) clone with wings. - GitHub 的推薦與評價
... and other Debian-based Linux distributions. If the package has not yet been promoted to your Ubuntu/Debian installation, or you want the most recent release ... ... <看更多>
linux cat 在 Linux cat 讀取檔案用法與範例 - ShengYu Talk 的推薦與評價
本篇ShengYu 介紹Linux cat 讀取檔案用法與範例,Linux cat 這個指令的作用是將檔案內容從第一行開始全部顯示在標準輸出(螢幕)上或者也可以用pipe 的 ... ... <看更多>